// Copyright 2022 a.o.smith ALL Rights Reserved
package com.liuxinlong.modules.system.service;

import com.liuxinlong.modules.entity.Expert;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 专家信息业务接口层
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022-12-08
 */
public interface ExpertService {
    /**
     * 查询专家信息列表
     *
     * @param queryParam 查询参数
     * @return 专家信息列表
     */
    List<Map<String, Object>> pageExpertInfo(Map<String, Object> queryParam);

    /**
     * 获取专家信息数量
     *
     * @param queryParam 查询参数
     * @return 专家信息数量
     */
    int getExpertInfoCount(Map<String, Object> queryParam);

    /**
     * 新增专家信息
     *
     * @param expert 专家信息
     */
    void addExpertInfo(Expert expert);

    /**
     * 更新专家信息
     *
     * @param expert 专家信息
     */
    void updateExpert(Expert expert);

    /**
     * 删除专家信息
     *
     * @param id 专家id
     */
    void deleteExpert(String id);

    /**
     * 导出专家信息
     *
     * @param response response
     */
    void exportExpert(HttpServletResponse response);

    /**
     * 导出专家贡献信息
     *
     * @param response response
     */
    void exportContribution(HttpServletResponse response);

    /**
     * 统计数据校正
     *
     * @return 校正成功数
     */
    int syncStatisticalData();
}
